package top.whysu.edevice.dao.ezviz;

import org.apache.ibatis.annotations.Param;
import top.whysu.edevice.dto.ezviz.token.TokenDTO;
import top.whysu.edevice.dto.ezviz.token.TokenWithAccountDTO;

import java.math.BigDecimal;
import java.util.List;

/**
 * 萤石相关dao，并没有对于的数据库
 */
public interface EzvizDao {
    /**
     * 获取账号id和凭证组id对应的AccessToken(这里的accessToken会过期，要用service的方法！！！)
     *
     * @param accountId 账号id，对应e_system_account的id
     * @param voucherId 凭证组id, 对应e_manage_voucher的id
     * @return 包含账号信息的Token
     */
    TokenWithAccountDTO getTokenByAccountId(@Param("accountId") BigDecimal accountId, @Param("voucherId") BigDecimal voucherId);

    /**
     * 根据凭证组id获取其下所有账号token信息(这里的accessToken会过期，要用service的方法！！！)
     *
     * @param voucherId 凭证组id
     * @return token以及账号信息集合
     */
    List<TokenWithAccountDTO> getTokenAccountList(BigDecimal voucherId);

    /**
     * 获取凭证组id获取对应的AccessToken(这里的accessToken会过期，要用service的方法！！！)
     *
     * @param voucherId 凭证组id, 对应e_manage_voucher的id
     * @return token
     */
    TokenDTO getTokenByVoucherId(BigDecimal voucherId);


}
